{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from requests_html import HTMLSession\n",
    "from requests_html import AsyncHTMLSession"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "session = HTMLSession()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "resp = session.get('http://www.spbeen.com')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nPython技术栈 | Spbeen\\n\\n\\n\\n\\n\\n\\n\\n        #bread{background-color: white;box-shadow:0px 0px 0px white;color:black;}\\n        #bread a{color:black;}\\n        #mapicon{font-size: 2em;  margin-right: 0.3em;}\\n        \\n\\n\\n\\n\\nhljs.initHighlightingOnLoad();\\n\\n        p{margin: 1em 0em 1em 0em;}\\n        a{color:black;}\\n        a:hover{color:#1dbfbf;}\\n    \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n            Spbeen \\n\\n\\n教程\\n        \\n\\n项目\\n        \\n\\n\\n\\n\\n\\n\\n\\n                                SpBeen\\n                            \\n\\n教程\\n\\nPython3教程\\nXpath教程\\nLinux常用命令\\n\\n\\n\\n项目\\n\\n基于Flask的微信娱乐机器人\\n基于Python的网络爬虫\\n基于 Python 的文件备份\\n\\n\\n\\n工具\\n\\nIP请求信息查询\\n\\n\\n\\n\\n\\n\\n\\n\\nSpbeen\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nSpbeen\\n > \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n教程\\n\\n\\n\\nPython3教程\\n\\n\\n\\n                        布啦豆\\n                        \\n\\n                            376300\\n                        \\n\\n\\n                        Python3教程，从零开始，写一个通俗易懂的教程\\n                    \\n\\n\\n\\nxpath教程\\n\\n\\n\\n                        布啦豆\\n                        \\n\\n                            107929\\n                        \\n\\n\\n                        xpath是一个分析html的强有力工具，Python爬虫可以方便的使用xpath来获取数据，写个针对爬虫的xpath教程\\n                    \\n\\n\\n\\nLinux常用命令\\n\\n\\n\\n                        布啦豆\\n                        \\n\\n                            25058\\n                        \\n\\n\\n                        入门Linux必备的常用命令\\n                    \\n\\n\\n\\n项目\\n\\n\\n基于Flask的微信娱乐机器人\\n\\n\\n\\n                        布啦豆\\n                        \\n\\n                            37687\\n                        \\n\\n\\n                        本次课程是基于 Flask Web 框架开发的娱乐级别的微信公众号后台，学习并实践 python 编程，Flask Web 开发以及微信公众平台开发机器人的基本步骤。\\n                    \\n\\n\\n\\n基于Python的网络爬虫\\n\\n\\n\\n                        布啦豆\\n                        \\n\\n                            67837\\n                        \\n\\n\\n                        单线程python爬虫，爬模特图片，根据图片目录创建本地文件夹并将图图片保存到对应的目录中去。\\n                    \\n\\n\\n\\n基于 Python 的文件备份\\n\\n\\n\\n                        布啦豆\\n                        \\n\\n                            26505\\n                        \\n\\n\\n                        本课程实现了一个 Python 的文件备份脚本，通过项目的实现，学习并实践 Python 的基础知识，Linux 的文件操作及简单的界面设计。\\n                    \\n\\n\\n\\n\\n\\n\\n最近更新\\n\\n                        1. ls命令\\n                    \\n\\n                        2. cd命令\\n                    \\n\\n                        3. 逐层检索和全局检索\\n                    \\n\\n                        4. 通过ID和Class检索\\n                    \\n\\n                        5. 简单的标签搜索\\n                    \\n\\n                        6. 伊始\\n                    \\n\\n                        7. 类的继承和多态\\n                    \\n\\n                        8. 类的不同方法（概念）\\n                    \\n\\n                        9. Python线程使用和概念理解\\n                    \\n\\n                        10. yield和生成器是什么？\\n                    \\n\\n                        11. 装饰器Decorator使用\\n                    \\n\\n                        12. 对象的概念和使用示例\\n                    \\n\\n\\n\\n\\n扫码关注微信公众号\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n                   Copyright @2016-2017 | 赣ICP备16003025号 var cnzz_protocol = ((\"https:\" == document.location.protocol) ? \" https://\" : \" http://\");document.write(unescape(\"%3Cspan id=\\'cnzz_stat_icon_1260149661\\'%3E%3C/span%3E%3Cscript src=\\'\" + cnzz_protocol + \"s11.cnzz.com/z_stat.php%3Fid%3D1260149661\\' type=\\'text/javascript\\'%3E%3C/script%3E\"));\\n\\n\\n\\n                $(document).ready(function(){\\n                    $(\".content table\").addClass(\"ui celled striped table\");\\n\\n                    $(\"#sidebar\").click(function(){\\n                      $(\\'.ui.sidebar\\').sidebar(\\'toggle\\');\\n                    });\\n\\n                });\\n            \\n\\n\\n'"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "resp.html.full_text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "Cannot use HTMLSession within an existing event loop. Use AsyncHTMLSession instead.",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-23-900a610b85dd>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mresp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhtml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrender\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32mD:\\python\\Anaconda3\\lib\\site-packages\\requests_html.py\u001b[0m in \u001b[0;36mrender\u001b[1;34m(self, retries, script, wait, scrolldown, sleep, reload, timeout, keep_page)\u001b[0m\n\u001b[0;32m    584\u001b[0m         \"\"\"\n\u001b[0;32m    585\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 586\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbrowser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msession\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbrowser\u001b[0m  \u001b[1;31m# Automatically create a event loop and browser\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    587\u001b[0m         \u001b[0mcontent\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    588\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\python\\Anaconda3\\lib\\site-packages\\requests_html.py\u001b[0m in \u001b[0;36mbrowser\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    727\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mloop\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0masyncio\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_event_loop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    728\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mloop\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mis_running\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 729\u001b[1;33m                 \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Cannot use HTMLSession within an existing event loop. Use AsyncHTMLSession instead.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    730\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_browser\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mloop\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_until_complete\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbrowser\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    731\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_browser\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mRuntimeError\u001b[0m: Cannot use HTMLSession within an existing event loop. Use AsyncHTMLSession instead."
     ]
    }
   ],
   "source": [
    "resp.html.render()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
